perm filename CHINA[E88,JMC] blob
sn#860703 filedate 1988-08-30 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00003 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 McCarthy 11
C00035 00003
C00087 ENDMK
C⊗;
McCarthy 11
When I said knowledge about knowledge in databases, I was
referring to what databases can know about what other
databases have in them. I see that this is an important
thing, and the topic that I want to add to it is also the
question of communication of this information among programs
and let me begin the communication part with a little story.
This is an article that I read, that was written in 1965 and
it was a 1965 model world of the future. And in this world of
the future a clerk in company A would hear a beep and would
turn to her terminal and there on the terminal it would say
something like: "We need five thousand number three pencils,
order them from company B", and then the clerk would turn
from her terminal to her typewriter and would type a purchase
order, which would go to company B and there in company B
another clerk would look at this purchase order and turn to
her terminal and say: "Send company A five thousand pencils
and a bill". There was nothing in this paper that indicated
that the author was not completely serious about this
being.............ultimate future, and now we are in this
world of the future. So to go beyond it of course the two
computer programs should speak to each other and the clerk
should lie on the beach.
Many people have been concerned with the designing databases,
and I am sure that many of you have been concerned of
designing databases. One of the problems with the design of
databases is that the designers tend to be imperialists. They
say: "Look at my great system for specifying databases. If
only everyone in the world would use my system, then things
would go fine. But suppose we take into account the fact that
this is not going to happen, that no one system is going to
conquer the world, and that there are going to remain a
variety of systems that .........will come along all the time
and that each time an organization makes a decision as to
what kind of new system to use, then it will optimize, based
on what iavailable at the time of this decision and what
people might have thought, should be standard. Last year may
have only an advisory significance. And we are going to live
in a situation, then what we have to have for database
systems is the means of describing other database systems and
describing particular data in every database systems and this
information has to be described in maybe three ways. One is
semantically, to say that this database has information about
airline schedules or it has information about how to travel
or something of this kind. The second is syntactically. This
information is organized as interfiles in such and such a way
and here are the names that this database uses for particular
information and here are the predicates and their arguments
that are used in this database and the third mode of
description is operationally. How does one add information to
this database or get information from the database. The
second and the third are sometimes intersubstitutable. Many
people like to think about it that you do not tell the users
of the database anything about how the information is
actually stored, you merely give them operational information
about how to get the information out of it. As a side remark
tried ..... the following challenge to the people, who claim
that they have computer programs that can communicate in
natural language, that can understand natural language. Let
them write very....their programs that will communicate with
the database programs that claim to communicate in natural
language. I have a rather specific challenge in this
direction. The Lawrence Berkeley Laboratory maintain the
large database of the 1970 senses of the United States, so
you see I have been thinking about this for quite some time.
This database was one that you could call up on the
telephone, and you could interact with it and that
information like how many people in the city of Austin, Texas
earned more than twentyfive thousand dollars per year in the
year 1970. Information concerning popution and income and
all other information the senses maintained. And it turns out
of course that there are quite a lot of databases that are
intended for human use and it be quite interesting to try to
make a computersystem, that could pretend to be a human,
sufficiently well to be able to interact with the database.
He may be .... that is a forms of the touring test, what you
have to fill is not another human being, but this computer
has to fill a database into thinking what is human. Now, I
want to discuss a little bit on semantics, of what kind of
information you have in a databse. Because it is possible to
take a very primitive view of this, which is adequate for
some purposes and inadequate for others. One of the things
that has become popular among the designers of expert systems
shells in the United States is database access, so the
designers of key, which is one of the expert system shells
and art, another, there is a company in m.... called mad
intelligent systems, that has something called relational
lisp and all of these people have found it useful for selling
their product to make available to the user of the product
the ability to access databases and this is also maybe most
easily describable in terms of PROLOG, the Quintus Company,
which is one of the companies that sells PROLOG systems
commercially, also has this and what it simply does, it makes
certain predicates, that are characteristic of the database
available to the programmer in PROLOG. So he can use a
certain predicate that when he uses this predicate the
database will be accessed and information will be extracted.
Now, it may be thought that this is all you need, but the
point I want to make is that it is very far from the
information, that a human has about a database. A human has
some information about the completeness or the incompleteness
of the database and let me mention a concept that should come
up in the formalisation of knowledge, that so far has not
been treated and that is knowing about. The formalisms for
expressing knowlee, that is for facts about knowledge, were
originally developed for formalizing knowing that, so if you
have some proposition "p", than it is possible to say that
"a" knows that p. Slightly beyond that is knowing that Pat
knows what Mikes telephone number is. It is a little more
problematical because it is not too bad with telephone
numbers, where you can standardize and say that the value of
the telephone number is a sequence of digits, but if you ask
something alike, one can ask the two questions: "who is that
man sitting there", the answer is: "Professor Tang". Someone
else asks: "Who is Professor Tang?" and the answer is: "that
man sitting there". Both are acceptable as answers to the
question, so the range of knowing what is often not
standardized. But, of course in particular accimizations one
can often take it as standardized. More abstract however, is
the concept of knowing about. Suppose that I do not know much
about automobiles, but I say that Professor Tang knows about
automobiles. Let us suppose that I say he is an big expert on
automibiles, then suppose that I have never heard of what a
carborator is, nevertheless in making the assertion that
Professor Tang is an expert on automobiles, I am assuming
that he knows what a carborator is, even if I do not know
what a carborator is. So, it is possible in knowledge about
knowledge, to refer to knowledge, that the person who makes
the statement is not half. To take a more realistic example,
we all know the travel agents know how to get from one place
to another and this involves when we asert that our travel
agent knows how to travel from one place to another, then we
are aserting that he possesses knowledge that usually the
aserter does not posses. So, if we want to put in our
database knowledge about other databases, then we need a
fairly strong language in which one can asert that this
database knows about certain subjects. So, we need some
formalism for that. Actually, let me hope that when I am
about to say constitutes the introduction to onef the
papers being given of this conference, which is to say, not
having been on the programme committee or not having read
through the book. I don't know what is in the conference. Let
me say that I am afraid that it probably, what I am about to
say, is not an introduction to one of the papers at this
conference. Let's just take the question, take it at a pretty
simple level. Suppose that there is a database of airline
flights, then it is possible, and let us suppose that this
database is in one of the wellknown relational database
forms, an SQL or something like that, an SQL database. And
let's suppose that we want to write an expert system that
will plan our trips and therefore will refer to this database
of airline flights. If the programmer reads the manual for
the database, then using one of the expert system shells. Let
us take it as an example: PROLOG, he can make himself a
PROLOG predicate that refers to this database. But let us ask
now to do this at a higher level. Instead of the programmer,
having to understand this SQL database, what we would like is
that he only all he puts in his database, is that a certain
other database contains a description of the airline
database. Now, let me point out the following sort of simple
things. You could imagine that there is a PROLOG predicate,
that has the predicate name 'flight' and its arguments are
the name of the flight, the date, the time of the flight, the
origin and the destination of the flight and maybe some date
range for which this particular predicate is valid, since the
airlines change their databases every now and then. You might
have in the database that information, but it might be in
several predicates rather than one, or even if it is one
order of the arguments need not be the same. So, what we
require to be able to put into a database, is in some sense
the manual for another database, which would then enable an
expert system that plans trips simply to be told that a
certain database is an airline database and contains its
preambule somewhere description of this database in some
kind of common language. Now, when we formalize facts about
knowledge, then I believe this will also be true of
databases, it has turned out that it is more difficult to
formalize non knowledge, that is to allow one to infer non
knowledge, than to infer knowledge. Let me take an example
that comes before you go to databases and this is the
formalization in various knowledge formalization systems of
the problem of the three wise men with the spots on their
forehead. You know the story: this king wants to know which
of his wise men is the wisest, so he paints a white spot on
each of their foreheads and as they are sitting together,
each can see the spot on the other fellow's forehead and then
the king says at least one of these spots is white, I will
regard as wise as the first one who tells me the colour of
his own spot the first. Eventually the wisest man does and
the puzzle is usually presented: how did he know and the
answer is given in the following way as a rule. He reasoned
that the other fellows are smart and if his spot had been
black, the other fellows would have each seen a white spot
and a black spot and would have reasoned that if his spot
were black, then one of the others who is not dumb, would
have known that since the king assured that there was at
least one white spot, and the guy could not see any white
spots, that it had to be its own. So that is the kind of
reasoning, that you are supposed to go through. As far as
formalisation is concerned, that is very hard, because if you
look at it carefully, you see that this third wise man has to
reason not merely about how its colleagues reasoned, but also
something about how fast they reasoned. He has to say, well
they would have given an answer by now, and maybe some day we
will have systems that can reason about how fast other
systems reason, but we can simplify the problem by expressing
it in a symmetrical way, namely the king paints all three
spots white assures them that there is at least one white
ot, and when he asks them: "Do you know the colour of your
spot" and they all say: "No", and then he says: "Do you know
the colour of your spot" and they all say: "No", and then he
says: "Do you know the colour of your spot" and then they
say: "Yes". It seems the first two no's have given them
sufficient information of that they not know the colours of
their spots. It is comparatively easy to make a formalisation
of this, that given the fact that they said "no" the first
two times, will allow you to infer that they said "yes" the
third time. It is more difficult to give a formalisation,
that predicts that they will say "no" the first two times,
because what you have to do is to find some way of saying
that here is all the king said and all that they know is what
can be inferred from what the king said. That could be done,
you can give such a formalisation. I have done it, but the
way of doing it involves, at least in the way I did it,
formalising possible worlds as objects, that is taking the
cr..... semantics of knowledge and taking this piece of meta
mathematics and expressing it as being the mathematics. It is
not entirely satisfactory the way of doing it, I think other
people have managed to do it in model logic, but I did not
understand papers. But, in general the point I want to make,
is that to make systems, that can prove non knowledge is
difficult, or to put the problem more generally, to prove
universals is more difficult. In other words to say, all I
know is what follows and then to draw conclusions from that.
I can give another example of this which may be illustrative.
It's not in the knowledge domain, it is in another domain.
Suppose that we have the facts; we have a definition, a
container is sterile, if it is sealed and if it is closed and
all the bacteria in the container are dead. So that is our
definition of a sterile container. And let us imagine that we
have also the fact that everything in it gets hot, we have
the additional fact that a bacterium, that is hot, dies. Now,
all of the facts can be written as h.... clauses, as
fragments of PROLOG. You have to use negation, but negation
as failure is adequate, and if you write this, then you can
make a PROLOG program, and you could ask this PROLOG program
either: 'Is the container sterile"? or to sterilize the
container. And if you ask it how to sterilize the container,
it will run and it will propose to do it in the following
way. It will index over the bacteria in the container and
kill each one by heating it or if it is asked to tell whether
the container is sterile, it will want to examine each
bacterium in the container. What will not follow from running
the PROLOG is the idea, that if you heat the container, all
the bacteria in it will die at once, and you have no
requirement, even for any way of indexing over the bacteria
in the container. So here we have some elementary facts,
which in fact can be expressed in PROLOG, but nevertheless
the way in which they are to be used and the way in which any
human being will use them, does not correspond to the
execution of the PROLOG program, but corresponds to more
general knowledge. I like this sterility problem, because it
strikes me that it is a good prototype problem for the first
kind of elementary reasoning, that all kinds of expert
systems should be able to do or even logic programs should be
able to do that goes beyond, what can be directly done with
PROLOG.
Now, let me mention one final topic, that is somewhat related
to AI and databases. This relates to an idea that I had some
years ago. I actually did publish a paper on this one, but I
will be very surprised if anyone has seen the published form
of the paper, since it was at a conference in Germany and the
title of the book was in German. No one who does not read
German would have bought the book. Even though the paper, and
most of the papers were, in English. This something that I
call a common business communication language, and it is
related to the problem of the clerks or rather to the problem
of ordering the pencils, and the ia of it is a language in
which programs, belonging to one organization, communicate
with programs belonging to an other organization. Without
these organizations, having any common boss, so it is just
the question of ordinary communication. Now at the low level
of communication, this is after all already decided or
already been organized. All sorts of ISO committees have got
together and produce standards of how many bits per second
and what shall be the handshaking routines in order for that.
At the higher level, still things are being done. Mostly on a
basis, one might say, an imperialist basis. The first example
that I know was in the late nineteen fifties. The social
security administration in the United States declared that it
was willing to accept reports of earnings from companies, who
would say how much their employees had earned and how much
money had been taken from their wages for social security
payments, that it was willing to accept that information
provided was given to them on IBM magnetic tape in a specific
format, so here you had the consumer of the information was
in a position to require a standard from everyone. And to
take a much more reasoned example of that, the General Motors
Corporation has vα
McCarthy 12
If you wish to be a supplier to General Motors, then you can
learn from them the specific formats and that their computer
will use to telephone your computer and place orders for
different things. This again is a monopolistic kind of thing,
there are now various systems, which are less monopolistic
for what is called electronic data interchange, EDI, they
seem to be based on forms, that is on electronic versions of
paper forms, and what I wanted to comment on that is that I
think this is going to prove inadequate and that certain
problems which are c..... problems of AI will arise in doing
it. Let me describe what I was proposing for this common
business communication language and first of all that the
form of the communications should be LISP like lists. So each
communicatn is a list and the first item of the list
identifies what it is, whether it is a purchase order or a
question or whatever and it has sublists again of the same
character. The second characteristic is that it was to have a
characteristic that ....... claims his characteristic of
human languages. Some of his fellow linguists disagree with
him, as to whether this is a characteristic of human
languages, but whether human languages have it or not, I want
it for this common business communication language. That is
that the syntax of the language never demands an item at any
point. It will always demand an expression, whose value is of
a certain sort, so if you have a price somewhere, then an
acceptable price is $ 3.12, but also an expression denoting a
price, the same as last week. Price in accordance with our
contract, or $ 3.12 plus 10 to the minus fourth times the
price that announces gold on the London market. People used
to quote such prices for pr.... circuits, because they had
gold in them. And sometimes then the value of the gold was
part of the value of the pr.... circuit. A final remark about
this, when you try to device such a system is that you get
into nonmonetonic reasoning, namely the simplest thing to do
about some item in a business communication, is to omit it,
for example under delivery you might omit it, because it
might be completely standard. The next level is a place in a
time, the next level is a schedule, the next level involves
conditionality. If such and such is true than it should be
delivered in such and such a way. And if one looks at actual
human business communication, one notices these nonmonotonic
aspects. Now, to finish, let me remark then that I consider
all of these things to be related. What databases can know
about other databases, what databases can know about
programs. That is in a sense you could regard a database as a
kind of specialized program and you want to know about
programs in general. And the aspect of information extraction
should be regarded as a kind of subcasof communication. And
what I believe, is that to make effective automatic systems,
we are going to have to identify and program more of the
capabilities that we can observe in human beings. Thank you.
l
John Sowa
I very much like the examples and they are a very nice
introduction at least to my talk, because in the talk I am
going to give on Friday, I wanted to emphasize the problems
of natural language and the requirement for starting with
knowledge informally as expressed in ordinary language. And
the point we have to deal with the way people think in order
to make computer systems more intelligent is very important
and I certainly agree that natural language processing has a
very far way to go coming up to the level that people can
handle and where the computers can deal with things the way
people can.
What is your feeling about the relationship of natural
language to logic and to knowledge representation and how
these areas interact and what is your prognoses, or what
could be done, how can it help us, how can it hinder us. What
are the problems we still have to address?
I don't think very much about natural language in a concrete
way in which linguists think about it. I like to regard
artificial intelligence as a branch of computer science,
rather than say as a branch of phychology or of linguistics
and let me make and analogy with the linear programming. Now
if the problems that the world gave us were presented to us
in the form of minimize some linear expression, subject to
some linear constraints, then artificial intelligence would
be the same as linear programming. However, the information
situation that we have is quite different from having linear
constraints on a bunch of variables and the action situation
that we have. Now, I regard the study of natural language as
maybe even being a distraction from what one really needs to
know to do artificial intelligence. Suppose you see me waving
this cup around and I get careless and one of you says: "If
he is not careful, he is going to dp this cup and it is
going to fall on the floor and break" and someone else says:
"Yes, that is true, we'd better tell him to stop waving the
cup around". Then one person has agreed with what another
person said in natural language, but on the basis of
information that neither of them express in natural language.
So, the facts about what is likely to happen if somebody is
waving a cup around carelessly, are not really expressed in
natural language. And so, what I think, for AI purposes, we
have to devote a lot of attention to looking at what people
know in ways that are independent of how people express it,
because much of this information is not expressed and indeed,
even if your purpose was solely, even if there were no
computers, and you wanted to understand common sense, and so
that your goal was to take what people know and express it in
natural language or in some artificial language, a
mathematical language, that you would invent for the purpose,
you would be quite different. You could not nearly examine
linguistic usage as a presently ex...... It seems to me that
progress in understanding natural language or even in the
ability to translate natural language, say from one language
to another, depends on improving our understanding of the
common sense world. That is understanding it in the following
sense. Not merely being able to do it, but to understand it.
Fish can swim, but fish don't understand swimming.
vI fully agree that the knowledge base is essential and that
you must have some way of representing very large volumes of
knowledge, the kind of knowledge people have in order to
understand problems and the point that I want to make,
though, is that natural language is in some sense I agree
that there are many distracting features of natural language.
There are many aspects of natural language that perhaps are a
distraction, but on the other hand it's the only mechanism,
it's the only representation system that we really have, that
is adequate to express everything that we think. Therere
many forms of logic, that people have come up with and the
problems of expressing things in each of these systems of
logic are leaving any shortcomings. There are systems where
just a very simple statement that you can make an ordinary
language blows up into enormous volumes of detail in most of
these knowledge representation languages and those details
are often distracting. Now I agree that there are
distractions in natural language, I would also say, that
there are many many distractions in every other knowledge
representation scheme that has ever been developed and I
would give as example the example of the sterile container.
But there is an example where PROLOG creates distractions
that are highly misleading and I would say that every
knowledge representation language currently proposed or has
distractions about sort, and I would not say that natural
language is the final answer, I would simply say, that it is
one of the sources insides of what knowledge representation
is and what it can be and it is a very rich source of
problems, that we can analyze and that can help us to
understand knowledge representation in general.
Let's go back to that sterile container example. You said at
one point natural language is the only language that we know
that is adequate and then you didn't exactly say what it was
adequate for. What I want to say is that natural language as
it presently exists, is not adequate, so representing in any
convenient way a lot of the knowledge that people have. Now
let's sharpen up the issue of the sterile container. The
discussion suggests two approaches. One is expressing the
facts about the sterile container in natural language, maybe
even if somebody made a transcript of what I said about it,
it would count as an expression. However, then the next
problem would be the make a program, that was good enough
itself in problems posed in natural language, so that it
would invent canning, so the speaker would say: "Well, all
you have to do is just sterilize containers, to seal them
wi the fruit inside and put them in boiling water. The
other approach would be to describe how to express what I
have said in logic, and actually I think there are no
problems there , because the only difference is to use more
of logic. That is to use quantifiers in a way which PROLOG
does not allow and then to have a problem solver of some kind
that use logic, that would then invent canning. Now I think
the state of that one is the following. I believe that there
isn't any logic system right now, that would invent canning.
It is conceivable that somebody might claim that his logic
system will invent canning a particular .... of food. But
.... wouldn't invent canning in general. On the other hand
there are plenty of logic proofcheckers, that would accept
the argument that canning worked. So, what I would claim in
this case is that in fact logic is a little bit a head of
natural language, I understand that neither is in the
position to provide a complete system.
That is certainly a statement, that I would agree with
wholeheartedly and the point that I perhaps can borrow from a
talk that I give on Friday, and that is that I wanted to say,
there are two fundamental starting points for understanding
knowledge representation and the first is natural language
and the second is logic and I would say that natural language
provides us a source of problems and the various features and
aspects of natural language provide us with a very rich, very
world of problems and issues and complexities. Logic gives us
a paradigm for how to approach things and a very precise
formal way and those are two starting points for exploring
better and newer knowledge representations. There is a
question that came up that somebody asked me. What is the
ideal of knowledge representation language and I said, there
is no such thing as an ideal knowledge representation
language and I said that there is a third thing, that we must
consider and that is the purpose and that a knowledge
representation that is adequate for one purpose mayot be
the ideal knowledge representation for an other purpose, so
that natural language I would say is the most flexible
knowledge representation scheme we have, we can almost
represent anything in it, although it is not the most
computable and there are very serious research problems,
making it computable. Then logic is the paradigm for the most
precise, informal system that we have, although there are
many ways that one would like enrich it or to adapt it to
various kinds of problems and then the problems that we have
give us further inside into ways of adapting our
representations, to make them more and more adequate for
particular purposes, although there may be no ideal
representation that can cover all problems, that we may have
to find different kinds of representations for different
problems. So that is the approach that I would like to cover.
I entirely agree with that, I have nothing to add to it.
Chen
In our practical work we have found some difficulties for
communication between different level database systems, for
example some low level database management system handles
some kind of basical date and there is a high level database
will contain some total value or population, like for example
.......enterprise and as a high level database for a
government management purpose. So in this case maybe the
population of some kind of instance or some total value of
some attributes. Is this database one instance for another
database? So in our practical work we found it quite
difficult to describe the relation between different levels
database. Would you please tell me how to deal with this kind
of communication? If two database contents are described at
different levels. For example: some as a database is just to
collect and store the data for person or the marks for a
student. Than an other database may store the average marks
of the class or of the University, so the total value or
average value for this database is one value of these .....
How could we communicate between these two kindof database
system?
It seems to me that the logic approach to databases, which
many people have taken, provides the clue here, namely after
all there are certainly logical languages in which
that the items in one file are the averages of the items in
some other file. So, therefore what is required in order to
solve some problems that will involve this, and of course no
specific problem is given there, is that it must be able to
interpret some databases of assertions about the database.
Maybe that is too naive; I'm sure you already thought about
that.
Wan
As I know, one of your biggest contribution to artificial
intelligence is the development of LISP language. The LISP
language has been successfull for users, informing many
artificial and expert systems. In your speech today, you have
more than once mentioned examples of PROLOG. I would like to
know: what is your opinion about the rows and differences
between LISP and PROLOG as a basical language in the
construction of knowledge based systems, for example the
ability to represent and to reason about really different
problems.
The fact that I use PROLOG for my examples, has nothing to do
with the question of appropriateness of a programming
language. LISP operates at a lower level than PROLOG, so that
if you want to have predicates that constitute assertions,
and you want to use LISP, then you are not talking about LISP
itself, you are talking about some particular programming
LISP, that use some particular form of knowledge
representation. Whereas in the case of PROLOG, it has a kind
of standard way of representing things, so that I could speak
of doing things in PROLOG, without having to define what
PROLOG program I was talking about. So, that was the reason
why I use PROLOG in those examples. That is of course not
totally precise, because PROLOG after all is a general
purpose programming language and if I had in some mind some
other way of representing information than PROLOG assertions
and in fact I was saying that one needs some otheray, then
it would be in the database of a particular PROLOG program
and one would have to describe it in a more complex way. Now,
nevertheless I think you are probably interested in my
opinion of the question of programming between LISP and
PROLOG, and I don't have any deep thoughts about that. I
think the LISP systems are today more highly developed and I
don't do a lot of programming myself, so I can only count on
other people's experience, and say that most of the LISP
programmers have changed and maybe one could also say that
most of the PROLOG programmers have it changed either, so I
don't have any real comment to make about the advice to
programmers. I would say the following, however, that a
manufacturer or an organization that has users, should not
attempt to make such a decision about which is more
appropriate, but should simply provide both for its customers
or users.
Solvberg.vIn my experience, when one the discourse of some real
world phenomena, then one reasons on several levels of
action, sometimes one manages to keep one level at a time,
but mostly one has involved one or two or three in the same
discourse. It also seems that to be able to keep things from
each other, then there is a need for a pretty complete
understanding of how one abstracts features from the world.
The basis for intelligent discourse between people as a
common understanding of concepts of the different levels of
abstraction, we know that this is not the case normally that
people have different views, they believe that the same
words, the same conscience mean the same things, but
basically they do not mean the same things. If, having that
kind of situation, how far could the AI techniques, natural
language based logical or so help us in a world which we do
not completely understand and are not able to ... in a
unanimous way, when should we start to distrust to be afraid
of the answers, that the AI systems will give us, because of
the AI systems lack of understanding. I know it is a very
general questio
McCarthy 21
Chen's example of the averages of an other example. One of
the formalisms, which I developed a long time ago was the
situation calculus, in which one had discrete actions and an
action or other event occurred in this to a new
situation, which was a function of the old situation and the
example. What more is, that this is not adequate in complete
generality, because people often carry out continuous
processies and furthermore there are concurred processies and
one of the capabilities that people have, that is not yet in
our systems is the ability to go back and forth between
levels of abstraction, because the level of abstraction,
where you have discrete action and we can discuss their
consequences without going into detail is a valuable level.
If I say if I put this coffeecup on top of this teacup, then
it will sit there provided if I put it carefull enough, then
you understand that is a discrete question and you are not
forced to discuss the manner in which I did it. I offer that
example for people to think about and now I am not claiming
to have solved the problem, because I have not. I want to
mention one idea, which is mentioned in one of my recent
papers, that is my sixteen year old paper, namely when I got
the in 1971, I gave this talk, called generality in
artificial intelligence and I finally got a round to write in
a paper with that title which they printed in 1987. But that
paper contains all sorts of things, that were not known, I
didn't know them anyway in 1971 and one of the things that
was mentioned was the question of formalization of context.
If one wants to achieve greater generality, and I think we
do, one way to do that is to add context as an object to
one's ontology and add a predicate holds p in contact in c to
one's predicates and this says that the sentence p holds in
the context t and this is a device that I would propose for
handling various levels of abstraction, because in some
context one speaks in terms of discrete actions and in some
other context one hato speak in terms of the continuous
action or concurred action. Anyway, this is an idea that is
mentioned in that paper, however if you were hoping from what
I said to learn really how to do it from reading that paper,
you are going to be disappointed. The paper only advocates
treating context objects. Let me mention just one feature of
that proposal and that is that we regard context as rich
objects, we imagine that a context has in it features which
are not known, so if we talk about the general english
language context, then I don't know all of the english
language or I don't all of the presumptions that I am making
and there is no most general context, there is always a
possibility of generalizing the context further. This is a
characteristic of our use of natural language, which is
entirely compatible with using first order logic, but is
entirely incompatible with the uses they have already been
made of first order logic. The fault is not in our languages
but in ourselves, that we haven't used context l.....
Kai
Artificial intelligence is recognized as a very hard topic. I
think the basic basis of artificial intelligence is
intelligence. There was just a talk about natural language
understanding. It is a very difficult topic, but I think to
some extend it is not very difficult. The world in natural
language has different meanings, all people may have a
different idea about the meaning of a word, people working in
a different field, in different countries, so it is difficult
for people to understand natural language. There may be no
common knowledge base. The main problem is to put a common
knowledge base into the computer and the knowledge base is
somehow the same with the knowledge base in my brains. The
computer can understand what I just said. I think, if people
want to understand natural language, I think it is not
possible to do it in computer science field. I think we must
first get a clearer idea how people can understand natural
languages. What do you think about this problem, Pr.
McCarthy?
Let me put the issue fairly sharply. As a question of
methodology in artificial intelligence. Suppose we are
interested in giving computer some ability, one way of doing
it is to think about the situation in which the computer must
act, the sources of information, that are available to the
computer and the effects of its actions and so forth. Let me
call this the computer science approach. The thinking is
about the world, another approach is to think about people,
that is to think to make psychological experiments and so
forth, to think about phychology. The remark that was made is
that the basis for artificial intelligence is understanding
human intelligence, which suggests the second approach. There
are lots of people in this room, and if half of them follow
the first approach, and half of them follow the second
approach, that is better than if they all follow one of them.
Now maybe one of them is enough better, so that 90% should
follow one approach and 10% should follow the other, but it
seems to me that neither approach should be left out. But
now, what I will claim is that most of the work in artificial
intelligence has followed the first approach, even Alan ...,
one of the people who started researching artificial
intelligence early, he was the one who was most oriented
towards the psychological approach. It seems to me has moved
to a more or like computer science approach, that is the
latest thing that .... has been working on for the last
number of years, the SOER system and it seems to me that is
substantially computer science approach, rather than a
psychological experiment based approach. You will remember
that his early work involved actually having students solved
problems in logic and saying to a tape recorder what they
were doing, when they were solving these problems in logic
and trying to make a system that did it the way they did. But
if someone develops some new concepts for understanding human
intelligence, it may be some new tools of observing what
people are actuay doing, then the psychological approach
can be of more help. The remark about what children
understand, brought to mind an example that I thought about.
There is a rime, a poem, told the children: The lion and the
unicorn were fighting for the crown. The unicorn is this like
a mythical beast, like a horse with a horn coming out of its
forehead, now I claim that a small child that hears this,
does not need to know in order to enjoy this rime, that lions
are real beasts and that unicorns are imaginary beasts and
that however lions are not interested in crowns, so it is
very unlikely that a lion would actually be fighting for the
crown. Nevertheless, the child can understand as a story,
that there is an object called the crown, of which it has
seen a picture that Kings are thought to wear and that two
animals could fight to see which one would get it. So it
seems to me that when we discuss children's understanding, or
for that matter we discuss adults understanding, then it is
not based on a single basic secure foundation of concepts and
this is one of the things we hope to get from the context
idea, that is we have a context in which certain things about
unicorns and lions can be got from that poem, that they are
beings that can have goals, and that can have objectives and
that can fight without any commitment, whether they are real
or not.
Chen
Natural language is not so easy to express everything, for
instance the feeling for intrusion. I think many things can
be represented by natural language, but not everything, like
some kind of mathematic formulas or even the human beings
intrusion, some feeling which is hard to express. My general
question is about logic. I am working on some kind of complex
object reasoning, we are trying to map some combinational
logic into first order logic. How far logic can go in
support, the knowledge representation, we have many different
... like aggregation generalization, but also we have
something like a behaviour and something we stay in the same
word, but not the same ace or not in the same universe and
something in this universe have this kind of behaviour and an
other universe may have another kind of behaviour, for
instance something very high level conceptually is collective
in facts of something very low level, for instance the human
beings behaviour is on a very high level and may be the
cells, the nerval system a very low level, but there is some
relationship. What I mean by partition model is abstraction ,
but not the generalization, some kind of abstraction. So, to
model this kind of situation or, in general, to support is it
possible or not in logic? In database we sometimes talk about
extension, but this still is a bit difficult.
So, the question has to do, with what can be represented in
logic. As far as representation is concerned, whether you are
doing non monetonic reasoning or not, is not to the point,
because nonmonetonic refers to the reasoning rather than to
representation. It seems to me, that one should put the
problem slightly differently, because I don't see any
limitation of logic per se, but the questions of limitation
come from specific ontologies, namely what things you allow
as objects in a particular logical language. Let me give a
mathematical example, because their things are rather clear.
There is a system, that is formalized in first order logic,
called the elementary theory of groups and elementary
actually has a ... in there, namely it is a system in which
the objects are the elements of the groups, so you could say
the group is communitive, because you can quantify over
elements, so you could say for all x and y, x times y equals
y times x, so that formula is there. On the other hand, this
elementary theory of groups does not have subgroups as
objects. There are all sorts of theorems, like La Grange's
theorem and so forth, that can not even be formulated little
own proved in the elementary theory of groups. Now the
mathematicians however, pleased with the elementary theory of
groups, just because of accepting these limitations, ty can
prove some .... theorems, that would not be true for systems
that were more expressive. Now as far as AI is concerned, I
think that we have to think in terms of the ontology, rather
than in terms of the logical system, so that if we find
something insufficiently expressive, then what we require
often is an improvement in the ontology, rather than an
improvement in the logic itself and many people have gone to
changing the logic and this was merely a confused idea; what
they really should do, was to change the ontology. Maybe I
apologize for using this word ontology, it is a term from
philosophy and it means the things that exist and if you look
it up in the dictionary the kinds of things the philosophers
talked about was do spirits exist and things like that,
whereas I am using it in a much more elementary sense that
was introduced by the philosopher .... and he said the
ontology is the set of things that the ....of variables range
over, so did they .... variables merely range over elements
of the group or did they also range over subgroups, and of
course if you want them range over several things, a tool
that helps this to use multisorted logic, but that is merely
a convenience, because otherwise you would have predicates,
that cover the same thing.
Chen
My second question is also about the language representation
in terms of logic, but from large .... point of view, by
reason, we would call logic reasoning or resolution or
something. Normally, we get logical consequence of something,
we get logical consequences of existing things, normally we
get something from all sides, someone told you or you learn
something, The system is active, the man or computer, is
active. You get some assumption first and then you try to
test. In this sense, the system is not feed back.
Logical reasoning, or in particular deduction, does not
provide for invention, even invention of mathematical
concepts. Suppose that we want to model human thought, that
can do some kind of invention, do we need then some other
kinds of computational processies than the modelling of
deduction. It seems to me, that in spirit the answer is yes,
we need something else. However, it might be that this
something else itself can be kind of simulated within a
deductive model, I don't want to emphasize that possibility
at the moment. I would like to give an example. There is a
play by the French playwrite Molire, called "La Malade
Imaginaire", in which there is a doctor and this doctor is
asked why sleepingpowder put people to sleep, and this
doctor says it's because the sleepingpowder contains a
dormative virtue. Everyone makes fun about the doctor in the
play, because he is considered to have said nothing new by
saying that the sleepingpowder has a dormative virtue. I
want to defend the doctor, and someone else has used this
analogy. What the doctor has done is to take out a low, he
has borrowed a bit of theory and if he has no intention of
ever paying it back, then this is dishonest and he deserves
to be criticized. But suppose that the next day the doctor
says: "Oh yes, I am going to look for this dormative virtue,
namely I am going to take different kinds of sleeping powder
and shake them in a mixture of ether and water and see if he
can get the dormative virtue to follow one way to go into the
water fraction or go into the ether fraction and going to
say: "if I can extract some substance which is common to all
the things that put persons to sleep, the doctor has then a
sort of repayed his loan a little bit, anyway. Now, suppose
the situation is before this, he hasn't even thought of a
plan for making any experiment. He has nearly thought of the
idea that, well I think that the different things put you to
sleep, because they all contain the same substance and he has
no idea how anyone might test such a thing. This is still an
idea, and it should not be excluded by some kind of grammar
of science. The point, which was related to the question that
was asked, is: "Can we make a computational process that will
inventuch ideas, that if one for example could say, well
these different things put you to sleep, maybe they all
contain some common substance, and of course, the seventeenth
century notion of substance was more general than the notion
we use today, it didn't correspond to some chemical compound
at that time, can we make a system that would do that and it
seems to me that in principle we could. If fact, as far as I
can tell no one has, it represents just one of the additional
difficulties of mathematical logic. However I would say that
if you are comparing natural mathematical logic with natural
language, and you wanted to make a system that would invent
ideas, you are no better off in trying to make such a system
thinking about natural language. Nothing the linguists have
done so far, is of any help.
Natural language system, any formal system, logic system and
formal system. Why is there a gap between these two
approaches. Twenty years ago in databases we have ... of
products, that is data, dictionary systems, my question is
does a data dictionary system can solve problems in
communication between database or proving?
As far as the question part, what is a data dictionary and
this whole idea of data dictionary good for, the answer I
have to say is I don't know, because I didn't study that
carefully enough. It seems to me maybe speaking about the
relation between natural language and logic, I did not give
credit enough to natural language, because it seems to me
that natural language raises many questions for logic, so
that if we want to take some things, which are expressed in
natural language and try to express them in logic, then this
gives us some good problems and I want to mention one
specific problem and this is the word "but". Suppose I say: I
had a seventeen hour airplane trip to China yesterday, but I
don't feel tired at the moment. Then, what use is having said
'but' rather than having said 'and'. What I believe is that
'but' is a very useful word and that computers will have to
use it alsand I don't want to go even in such details as
exist right now, but my ideas about how the word 'but' might
be treated, are based on nonmonotonic reasoning and based on
the following idea. When a person speaks, then he tracks his
expectations about what conclusions his listeners will draw
from what he says and normally a listener is entitled to draw
conclusions incrementally from what the speaker says. Our
speech is divided into sentences, because when you utterance
sentence, the listener is entitled to add information to his
database, that he gets from this sentence. Now, some of the
reasoning that the listener is entitled to draw, is non
monotonic, so in the simplest model he had a very long
airplane trip yesterday, and adding this to your database,
you would say: "well, then he must be very tired". The word
'but' is a signal that a certain conclusion that you would
normally draw from the first part of the sentence, is not to
be drawn, so it relates to some kind of non monotonic
reasoning. The point I want to make about that, is that until
there was some idea of formalizing nonmonotonic reasoning,
then it was not possible to treat 'but' properly and maybe it
still is not, because after all nonmonotonic reasoning is
not likely to be the last invention, of some new kind of
logical reasoning, but one might have hoped then, that
formalized nonmonetonic reasoning is something that the
linguists would have invented twenty years ago, but they
didn't and it seems to me the resaon they didn't, is that
they are too interested in syntax. The syntax of 'but' is not
hard, and the linguists feel probably solved that problem
long ago and therefore felt no need to really considering
this semantics and so they missed one of the important
characteristics of natural language.